#ifndef PhongImageMaterial_h
#define PhongImageMaterial_h

#include <string>

#include "Material.h"
#include "Color.h"
#include "Point.h"
#include "Texture.h"


#include "Material.h"
#include "Color.h"

class Image;
class PhongImageMaterial : public Material {
 public:
  PhongImageMaterial(const std::string& imagename, float Kd, float Ka,
                     const Color& phong_color, int phong_exponent);
  virtual ~PhongImageMaterial();

  virtual void shade(Color& result, const RenderContext& context, const Ray& ray,
                     const HitRecord& hit, const Color& atten, int depth) const;

 private:
  PhongImageMaterial(const PhongImageMaterial&);
  PhongImageMaterial& operator=(const PhongImageMaterial&);

  float Kd;
  float Ka;
  Color phong_color;
  int phong_exponent;
  Image* image;
};

#endif
